package org.example.servlet;

import org.example.dao.LoginDAO;
import org.example.expection.AppException;
import org.example.model.User;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet("/login")
public class LoginServlet extends AbstractBaseServlet{
    @Override
    protected Object process(HttpServletRequest req, HttpServletResponse resp) throws Exception {
       //解析request对象里面的数据，把请求体或者url里面的参数取出来
        String username= req.getParameter("username");
        String password= req.getParameter("password");

//通过用户名去查，查出来是一个用户，如果用户名为空，就说明用户不存在，
// 如果查出来的密码和password不同就是用户名密码错误，
// 这两种错误都抛异常

        User user= LoginDAO.query(username);
        if(user==null){
            throw new AppException("LOG002","用户不存在");
        }
        if(!user.getPassword().equals(password)){
            throw new AppException("LOG003","用户名或密码错误");
        }
        //登录成功创建session
        HttpSession session= req.getSession();
        session.setAttribute("user",user);
        return null;

//        if("abc".equals(username)){//模拟用户名密码校验
//            return null;//重定向
//        }else{
//            throw new AppException("LOG001","用户名密码错误");
//        }
    }
}
